Linux 和 Windows 双系统共用蓝牙设备

背景

我安装的双系统,有时需要切换到Linux下工作,有时又需要在Windows下处理事务。我使用的蓝牙键盘是Logitech K380,可以同时容纳三个设备,但是每次在一个系统下配置使用后,重启到另外一个系统便不能再连接,需要重新配对。本文参考了网络上其他的文章,可先看参考文章。话不多说,直接开始!

首先,了解一下原因。蓝牙配对是根据设备的MAC地址和随机生成的密钥来连接的,相同设备的MAC地址是相同的,但是系统随机生成的密钥不同,所以解决的思路就是把密钥改成相同的即可。

由于我Windows已经配对了,我参考南浦月的博客步骤如下:

  1. Windows配对键盘(生成配置文件)
  2. Linux下配对键盘(读取key)
  3. 回到Windows修改配对key

使用dumplive在Linux下读取Windows注册表

1
2
3
sudo mount /dev/sda3 /mnt          #假设 sda3 是 Windows 系统盘
cd /mnt/Windows/System32/config #注意路径大小写
dumphive system ~/system.reg

这里直接参考原博客即可,但是我的Win10(版本1803)对应的键值与原文中的

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys<本机蓝牙 MAC><鼠标蓝牙 MAC>

不一样,使用grep -Pn 'BTHPORT.*(\\[\da-f]{12}){2}' ~/system.reg 正则无法匹配,我这里的键值是

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\441ca8xxxxx(本机蓝牙MAC)

最后的密钥在键为键盘蓝牙MAC下。
剩余步骤直接按原文操作即可。

修改Linux下蓝牙配对信息

1
2
3
sudo su
cd /var/lib/bluetooth/60:57:XX:XX:XX:XX # 进入本机蓝牙设备的配对信息
cd EB:50:XX:XX:XX:XX # 进入键盘蓝牙目录

修改该目录下的info文件,把key改对即可。注意去掉冒号,全大写,这里与原文鼠标的配置文件不同。(不需要反转字符)

参考

https://blog.nanpuyue.com/2018/040.html

Author: whllhw
Link: https://whllhw.ml/posts/2019/08/19/Linux 和 Windows 双系统共用蓝牙设备/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.